home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Linux / Kubuntu 8.10 / kubuntu-8.10-desktop-i386.iso / casper / filesystem.squashfs / usr / lib / perl / 5.10.0 / POSIX.pm < prev    next >
Text File  |  2008-07-24  |  2KB  |  85 lines

  1. package POSIX;
  2. use strict;
  3. use warnings;
  4.  
  5. our(@ISA, %EXPORT_TAGS, @EXPORT_OK, @EXPORT, $AUTOLOAD, %SIGRT) = ();
  6.  
  7. our $VERSION = "1.13";
  8.  
  9. use AutoLoader;
  10.  
  11. use XSLoader ();
  12.  
  13. use Fcntl qw(FD_CLOEXEC F_DUPFD F_GETFD F_GETFL F_GETLK F_RDLCK F_SETFD
  14.          F_SETFL F_SETLK F_SETLKW F_UNLCK F_WRLCK O_ACCMODE O_APPEND
  15.          O_CREAT O_EXCL O_NOCTTY O_NONBLOCK O_RDONLY O_RDWR O_TRUNC
  16.          O_WRONLY);
  17.  
  18. # Grandfather old foo_h form to new :foo_h form
  19. my $loaded;
  20.  
  21. sub import {
  22.     load_imports() unless $loaded++;
  23.     my $this = shift;
  24.     my @list = map { m/^\w+_h$/ ? ":$_" : $_ } @_;
  25.     local $Exporter::ExportLevel = 1;
  26.     Exporter::import($this,@list);
  27. }
  28.  
  29. sub croak { require Carp;  goto &Carp::croak }
  30. # declare usage to assist AutoLoad
  31. sub usage;
  32.  
  33. XSLoader::load 'POSIX', $VERSION;
  34.  
  35. my %NON_CONSTS = (map {($_,1)}
  36.                   qw(S_ISBLK S_ISCHR S_ISDIR S_ISFIFO S_ISREG WEXITSTATUS
  37.                      WIFEXITED WIFSIGNALED WIFSTOPPED WSTOPSIG WTERMSIG));
  38.  
  39. sub AUTOLOAD {
  40.     no strict;
  41.     no warnings 'uninitialized';
  42.     if ($AUTOLOAD =~ /::(_?[a-z])/) {
  43.     # require AutoLoader;
  44.     $AutoLoader::AUTOLOAD = $AUTOLOAD;
  45.     goto &AutoLoader::AUTOLOAD
  46.     }
  47.     local $! = 0;
  48.     my $constname = $AUTOLOAD;
  49.     $constname =~ s/.*:://;
  50.     if ($NON_CONSTS{$constname}) {
  51.         my ($val, $error) = &int_macro_int($constname, $_[0]);
  52.         croak $error if $error;
  53.         *$AUTOLOAD = sub { &int_macro_int($constname, $_[0]) };
  54.     } else {
  55.         my ($error, $val) = constant($constname);
  56.         croak $error if $error;
  57.     *$AUTOLOAD = sub { $val };
  58.     }
  59.  
  60.     goto &$AUTOLOAD;
  61. }
  62.  
  63. package POSIX::SigAction;
  64.  
  65. use AutoLoader 'AUTOLOAD';
  66.  
  67. package POSIX::SigRt;
  68.  
  69. use AutoLoader 'AUTOLOAD';
  70.  
  71. use Tie::Hash;
  72.  
  73. use vars qw($SIGACTION_FLAGS $_SIGRTMIN $_SIGRTMAX $_sigrtn @ISA);
  74. @POSIX::SigRt::ISA = qw(Tie::StdHash);
  75.  
  76. $SIGACTION_FLAGS = 0;
  77.  
  78. tie %POSIX::SIGRT, 'POSIX::SigRt';
  79.  
  80. sub DESTROY {};
  81.  
  82. package POSIX;
  83.  
  84. 1;
  85.